home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-08 | 43.8 KB | 1,003 lines |
- /////////////////////\\\\\\\\\\\\\\\\\\\\\\\
- Dokumentation zur FIDO Unit FSTR
- \\\\\\\\\\\\\\\\\\\\\///////////////////////
-
- RELEASE 1.06
- ^^^^^^^^^^^^
-
- =========================================================================
- Autor: Peter Holschbach, 2:2450/660.3 @ FidoNet, Remscheid, 29.06.1994
- =========================================================================
-
- 1. Strings:
- -----------
-
- Die Unit FSTR.PAS stellt Funktionen und Prozeduren zur Manipu-
- lation und Bearbeitung von Variablen der Typen CHAR und STRING
- zur Verfuegung.
-
- Dies ist eine Low Level Unit. Sie benoetigt keinerlei Routinen
- anderer Units, mit Ausnahme der in Turbo Pascals (6.0 oder
- hoeher) Unit-Library TURBO.TPL enhaltenen Standard-Units.
-
-
-
- 2. Kurzbeschreibung:
- --------------------
-
- CharListPos .......... liefert die Position des ersten
- Vorkommens eines, in einer als String
- uebergebenen Liste enthaltenen Chars in
- einem String als Word zurueck
- CharListNoPos ........ liefert die Position des ersten
- Vorkommens eines, in einer als String
- uebergebenen Liste _nicht_ enthaltenen
- Chars in einem String als Word zurueck
- EscToString .......... wandelt eine Zeichenkette mit Steuerzeichen
- in eine 'lesbare' Zeichenkette mit ASCII
- um.
- EnsureBackslash ...... stellt sicher, dass ein String mit
- einem '\' endet
- EnsureNoBackslash .... stellt sicher, dass ein String _nicht_
- mit einem '\' endet
- FieldOfStrings ....... Typendefinition fuer den internen
- Gebrauch
- LastPos .............. ermittelt die letzte Startposition einer
- Zeichenfolge innerhalb einer Variablen
- des Typs STRING
- LowerString .......... konvertiert eine Variable des Typs
- STRING zu Kleinschreibung (erlaubt auch
- die Uebergabe von Variablen des Typs
- CHAR)
- MirrorString ......... spiegelt einen String an der eigenen
- Achse
- PartString ........... teilt einen String, ausgehend von einer
- als String uebergebenen Liste von Trenn-
- zeichen, in Teilstrings auf
- PartStringByComma .... teilt einen String, ausgehend von dem
- Trennzeichen ',', in Teilstrings auf
- PartStringBySpaceTAB . teilt einen String, ausgehend von den
- Trennzeichen ' ' und #9, in Teilstrings
- auf
- PosCount ............. ermittelt die Haeufigkeit, mit der eine
- Zeichenfolge innerhalb einer Variablen
- des Typs STRING vorkommt
- PosX ................. liefert die Position des Xten
- Vorkommens eines Substrings innerhalb
- eines Strings als Byte zurueck
- RedPosCount .......... ermittelt die _redundante_ Haeufigkeit,
- mit der eine Zeichenfolge innerhalb
- einer Variablen des Typs STRING
- vorkommt
- RemoveAll ............ entfernt alle in einer uebergebenen Liste
- enthaltenen Chars komplett aus einem
- String
- RemoveLeft ........... entfernt alle in einer uebergebenen
- Liste enthaltenen Chars links aus einem
- String
- RemoveLeftRight ...... entfernt alle in einer uebergebenen
- Liste enthaltenen Chars links _und_
- rechts aus einem String
- RemoveRight .......... entfernt alle in einer uebergebenen Liste
- enthaltenen Chars rechts aus einem
- String
- Resemble ............. liefert einen Wert zurueck, der angibt,
- wie sehr sich zwei Strings aehneln
- StringToEsc .......... wandelt eine Zeichenkette, die
- Steuerzeichen in lesbarer Form enthält,
- in eine Zeichenkette mit Steuerzeichen
- um.
- StripLeadingSpaceTAB . entfernt alle fuehrenden Leerzeichen und
- TABs aus einem String
- StripSpaceTAB ........ entfernt _alle_ Leerzeichen und TABs aus
- einem String
- UpperString .......... konvertiert eine Variable des Typs
- STRING zu Grossschreibung (erlaubt auch
- die Uebergabe von Variablen des Typs
- CHAR)
- WildMatch ............ ueberprueft, ob ein beliebige WildCards
- '?' und '*' enthaltender String mit
- einem als zweitem Parameter uebergebenem
- String uebereinstimmt
-
-
-
- 3. Detaillierte Beschreibung:
- -----------------------------
-
- ===============================================================
- CharListPos
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 18.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die Position des ersten Vorkommens
- eines, in einer als String uebergebenen Liste
- enthaltenen Chars in einem String als Word
- zurueck
-
- DEKLARATION ... function CharListPos
- (findlst,strName: String) : Word;
-
- PARAMETER ... findlst - die Liste der gueltigen Chars
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die Position
- des ersten Vorkommens eines in der Liste der
- gueltigen Chars enthaltenen Chars in strName
- zurueckliefert
-
-
- ===============================================================
- CharListNoPos
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 18.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die Position des ersten Vorkommens
- eines, in einer als String uebergebenen Liste
- nicht enthaltenen Chars in einem String als
- Word zurueck
-
- DEKLARATION ... function CharListNoPos
- (findlst,strName: String) : Word;
-
- PARAMETER ... findlst - die Liste der ungueltigen Chars
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die Position
- des ersten Vorkommens eines in der Liste der
- gueltigen Chars nicht enthaltenen Chars in
- strName zurueckliefert
-
-
- ===============================================================
- EscToString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 24.10.1994 LETZTE AeNDERUNG ...
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... Eine Zeichenkette die Steuerzeichen
- enthält (z.B. Escape = #27) wird in eine
- lesbare Form gebracht die auf dem Bildschirm
- darstellbar ist. Hierfür werden alle
- Zeichen die einen ASCII-Wert unterhalb von
- 20h haben als ASCII-WERT + 64 dargestellt und
- durch ein führendes '^' gekennzeichnet.
- Bsp.: #27 -> '^[' ( da 27+64 = 91 = '[')
- Sollte in der Zeichenkette ein '^' enthalten
- sein, so wird es durch '^^' gekennzeichnet.
- Dies Funktion kann z.B. gebutzt werden um
- die Steuerzeichen eines Druckers lesbar
- zu machen.
-
-
- DEKLARATION ... Function EscToString (strName:String) : String;
-
- PARAMETER ... strName - der String der gewandelt werden soll
-
- ERGEBNIS ... ein String mit Steuerzeichen im ASCII Format
-
- ===============================================================
- EnsureBackslash
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 17.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... stellt sicher, dass ein String auf '\' endet
-
- DEKLARATION ... function EnsureBackslash
- (strName: String) : String;
-
- PARAMETER ... strName - der zu pruefende String
-
- ERGEBNIS ... ein String der auf '\' endet
-
-
- ===============================================================
- EnsureNoBackslash
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 17.06.1994 LETZTE AeNDERUNG ... 17.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... stellt sicher, dass ein String nicht auf '\'
- endet
-
- USES ... RemoveRight
-
- DEKLARATION ... function EnsureNoBackslash
- (strName: String) : String;
-
- PARAMETER ... strName - der zu pruefende String
-
- ERGEBNIS ... ein String der nicht auf '\' endet
-
-
- ===============================================================
- FieldOfStrings
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 18.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... Typendaklaration zum internen Gebrauch fuer
- PartString
-
- DEKLARATION ... type
- FieldOfStrings = Array [0..20] of String;
-
-
- ===============================================================
- LastPos
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 18.12.1993 LETZTE AeNDERUNG ... 21.12.1993
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die letzte StartPosition eines Sub-
- Strings oder -Chars innerhalb eines Strings
- zurueck
-
- USES ... MirrorString
-
- DEKLARATION ... function LastPos (findstr, strName: String): Byte
-
- PARAMETER ... findstr - der zu suchende SubString
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die letzte
- Startposition von 'findstr' innerhalb von
- 'strName' enthaelt
-
-
- ===============================================================
- LowerString
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... ??.??.1992 LETZTE AeNDERUNG ... 21.12.1993
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... konvertiert eine Variable des Typs STRING zu
- Kleinschreibung (erlaubt auch die Uebergabe von
- Variablen des Typs CHAR)
-
- DEKLARATION ... function LowerString (strName:string):String
-
- PARAMETER ... strName - der zu konvertierende String
-
- ERGEBNIS ... eine Variable des Typs STRING, bestehend aus
- Kleinbuchstaben
-
-
- ===============================================================
- MirrorString
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 18.12.1993 LETZTE AeNDERUNG ... 16.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... spiegelt eine Variable des Typs STRING an der
- eigenen Achse
-
- DEKLARATION ... function MirrorString(strName: String):String
-
- PARAMETER ... strName - der zu konvertierende String
-
- ERGEBNIS ... eine Variable des Typs STRING, die den Inhalt
- von 'strName' _spiegelverkehrt_ enthaelt
-
-
- ===============================================================
- PartString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 28.06.1994
-
- MODIFIKATION ... Peter Holschbach
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... teilt einen String, ausgehend von einer als
- String uebergebenen Liste von Trennzeichen, in
- Teilstrings auf. Ausgenommen alle Zeichen die
- mit "" umschlossen sind.
-
- USES ... CharListPos, CharListNoPos
-
- DEKLARATION ... procedure PartString
- (PartBy:String;Var StringField:FieldOfStrings);
-
- PARAMETER ... PartBy - die als String uebergebene Liste
- der gueltigen Trennzeichen
- StringField - ein Array [0..20] of String;
- der zu teilende String wird vor
- Aufruf von PartString in
- StringField[0] abgelegt, wo er
- nicht veraendert wird
-
- ERGEBNIS ... die TeilStrings werden in den Feldern 1..20
- der Variablen StringField abgelegt und koennen
- dort abgefragt werden. Die Anzahl der Teilstrings
- wird in PartCount abgelegt.
-
- ===============================================================
- PartStringByComma
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 18.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... teilt einen String, ausgehend von ',' als
- Trennzeichen, in Teilstrings auf
-
- USES ... CharListPos, CharListNoPos, PartString
-
- DEKLARATION ... procedure PartStringByComma
- (Var StringField : FieldOfStrings);
-
- PARAMETER ... StringField - ein Array [0..20] of String;
- der zu teilende String wird vor
- Aufruf von PartString in
- StringField[0] abgelegt, wo er
- nicht veraendert wird
-
- ERGEBNIS ... die TeilStrings werden in den Feldern 1..20
- der Variablen StringField abgelegt und koennen
- dort abgefragt werden
-
-
- ===============================================================
- PartStringBySpaceTAB
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 18.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... teilt einen String, ausgehend von ','#9 als
- Trennzeichen, in Teilstrings auf
-
- USES ... CharListPos, CharListNoPos, PartString
-
- DEKLARATION ... procedure PartStringBySpaceTAB
- (Var StringField : FieldOfStrings);
-
- PARAMETER ... StringField - ein Array [0..20] of String;
- der zu teilende String wird vor
- Aufruf von PartString in
- StringField[0] abgelegt, wo er
- nicht veraendert wird
-
- ERGEBNIS ... die TeilStrings werden in den Feldern 1..20
- der Variablen StringField abgelegt und koennen
- dort abgefragt werden
-
-
- ===============================================================
- PosCount
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 21.12.1993 LETZTE AeNDERUNG ... 21.12.1993
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die Haeufigkeit zurueck, mit der ein
- SubString oder -Char innerhalb eines Strings
- vorkommt
-
- DEKLARATION ... function PosCount (findstr, strName : String): Byte
-
- PARAMETER ... findstr - der zu suchende SubString
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die Haeufigkeit
- von 'findstr' innerhalb von 'strName' zurueck-
- liefert
-
-
- ===============================================================
- PosX
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 09.06.1994 LETZTE AeNDERUNG ... 09.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die Position des Xten Vorkommens
- eines Substrings innerhalb eines Strings als
- Byte zurueck
-
- DEKLARATION ... function PosX
- (Xpos: byte; findstr, strName: String): Byte;
-
- PARAMETER ... Xpos - das Xte zu findende Vorkommen
- findstr - der zu suchende SubString
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die Position
- des Xten Vorkommens von 'findstr' innerhalb
- des Strings 'strName' zurueckliefert
-
-
- ===============================================================
- RedPosCount
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 18.12.1993 LETZTE AeNDERUNG ... 21.12.1993
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die _redundante_ Haeufigkeit zurueck,
- mit der ein SubString oder -Char innerhalb
- eines Strings vorkommt
-
- DEKLARATION ... function RedPosCount(findstr,strName:String):Byte
-
- PARAMETER ... findstr - der zu suchende SubString
- strName - der zu durchsuchende String
-
- ERGEBNIS ... eine Variable des Typs BYTE, die die _redundante_
- Haeufigkeit von 'findstr' innerhalb von 'strName'
- zurueckliefert
-
-
- ===============================================================
- RemoveAll
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 02.06.1994 LETZTE AeNDERUNG ... 17.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... entfernt alle in einer Liste uebergebenen
- Chars innerhalb eines Strings
-
- DEKLARATION ... function RemoveAll(remo,strName:String):String;
-
- PARAMETER ... remo - Liste der zu entfernenden Chars
- strName - der zu bearbeitende String
-
- ERGEBNIS ... ein String der die in remo enthaltenen Chars
- nicht mehr enthaelt
-
-
- ===============================================================
- RemoveLeft
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 02.06.1994 LETZTE AeNDERUNG ... 16.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... entfernt alle in einer Liste uebergebenen
- Chars links eines zu erhaltenden Strings
-
- DEKLARATION ... function RemoveLeft(remo,strName:String):String;
-
- PARAMETER ... remo - Liste der zu entfernenden Chars
- strName - der zu bearbeitende String
-
- ERGEBNIS ... ein String der die in remo enthaltenen Chars
- nicht mehr fuehrend enthaelt
-
-
- ===============================================================
- RemoveLeftRight
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 16.06.1994 LETZTE AeNDERUNG ... 16.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... entfernt alle in einer Liste uebergebenen
- Chars links und rechts eines zu erhaltenden
- Strings
-
- USES ... MirrorString, RemoveLeft
-
- DEKLARATION ... function RemoveLeftRight
- (remo,strName:String):String;
-
- PARAMETER ... remo - Liste der zu entfernenden Chars
- strName - der zu bearbeitende String
-
- ERGEBNIS ... ein String der die in remo enthaltenen Chars
- nicht mehr fuehrend und endend enthaelt
-
-
- ===============================================================
- RemoveRight
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... 02.06.1994 LETZTE AeNDERUNG ... 16.06.1994
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... entfernt alle in einer Liste uebergebenen
- Chars rechts eines zu erhaltenden Strings
-
- USES ... MirrorString, RemoveLeft
-
- DEKLARATION ... function RemoveRight(remo,strName:String):String;
-
- PARAMETER ... remo - Liste der zu entfernenden Chars
- strName - der zu bearbeitende String
-
-
- ===============================================================
- Resemble
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Schuette, 2:2450/117.19 @ FidoNet
-
- ERSTDATUM ... ??.??.19?? LETZTE AeNDERUNG ... 16.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert einen Wert zurueck, der angibt, wie
- sehr sich zwei Strings aehneln
-
- DEKLARATION ... function Resemble(a, b: String): Byte;
-
- PARAMETER ... a,b - die zu vergleichenden Strings
-
- ERGEBNIS ... eine Variable des Typs Byte, die die Aehnlich-
- keit zweier Strings widerspiegelt; je kleiner
- desto aehnlicher; 0 bei identischen Strings;
- die Routine arbeitet case-sensitiv
-
- ===============================================================
- StringToESC
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 24.10.1994 LETZTE AeNDERUNG ...
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... Eine Zeichenkette die Steuerzeichen in
- 'verschlüsselter' Form enthält, wird
- in eine Zeichenkette gewandelt in der die
- Steuerzeichen direkt enthalten sind.
-
-
- DEKLARATION ... Function StringToESC (strName:String) : String;
-
- PARAMETER ... strName - der String der gewandelt werden soll
-
- ERGEBNIS ... ein String mit Steuerzeichen
-
- ===============================================================
- StripLeadingSpaceTAB
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 17.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... enfernt fuehrende Leerzeichen und TABs aus ei-
- nem String
-
- USES ... RemoveLeft
-
- DEKLARATION ... function StripLeadingSpaceTAB
- (strName: String): String;
-
- PARAMETER ... strName - der zu bearbeitende String
-
-
- ===============================================================
- StripSpaceTAB
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 16.01.1994 LETZTE AeNDERUNG ... 17.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... enfernt _alle_ Leerzeichen und TABs aus einem
- String
-
- USES ... RemoveLeft
-
- DEKLARATION ... function StripSpaceTAB(strName:String):String;
-
- PARAMETER ... strName - der zu bearbeitende String
-
-
- ===============================================================
- UpperString
- ---------------------------------------------------------------
- ERSTAUTOR ... Orazio Czerwenka, 2:2450/540.55 @ FidoNet
-
- ERSTDATUM ... ??.??.1992 LETZTE AeNDERUNG ... 21.12.1993
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... konvertiert eine Variable des Typs STRING zu
- Grossschreibung (erlaubt auch die Uebergabe von
- Variablen des Typs CHAR)
-
- DEKLARATION ... function UpperString (strName:string):String
-
- PARAMETER ... strName - der zu konvertierende String
-
- ERGEBNIS ... eine Variable des Typs STRING, bestehend aus
- Grossbuchstaben
-
-
- ===============================================================
- WildMatch
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Schuette, 2:2450/117.19 @ FidoNet
-
- ERSTDATUM ... ??.??.19?? LETZTE AeNDERUNG ... 16.06.1994
-
- MODIFIKATION ... Orazio Czerwenka
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... ueberprueft, ob ein beliebige WildCards '?' und
- '*' enthaltender String mit einem als zweiter
- Parameter uebergebenem String uebereinstimmt
-
- DEKLARATION ... function WildMatch
- (Pattern,Source: String) : Boolean;
-
- PARAMETER ... Pattern - der WildCards enthaltende String
- Source - der String in dem Pattern enthalten
- sein soll
-
- ERGEBNIS ... TRUE - wenn Pattern in Source enthalten
- FALSE - wenn Pattern nicht in Source
-
- --- CrossPoint v3.02 R
- * Origin: kann denn Pascal Suende dein ? (2:2450/540.150)
-
- @PATH: 2450/540
-
- ------------------------------------------------------------
- (5176) Sun 3 Jul 94 0:00
- By: Peter Holschbach
- To: Alle
- Re: FSTR.DOK 1.05b Teil2 von 2
- St:
- ------------------------------------------------------------
- @MSGID: 2:2450/540.150 ae15ac9b
- @PID: XP 3.02 R/A6738
- 4. Beispiele:
- -------------
-
- ===============================================================
- CharListNoPos
- ---------------------------------------------------------------
-
- CharListNoPos ('ab','bbabTest')
- ^ {Ergebnis: 5 }
-
- ===============================================================
- CharListPos
- ---------------------------------------------------------------
-
- CharListPos ('ab','Test bacd')
- ^ {Ergebnis: 6 }
-
- ===============================================================
- EscToString
- ---------------------------------------------------------------
-
- Zeile := #27'P^'
- Writeln (EscToString (Zeile));
- { Ergebnis: '^[P^^' }
-
- ===============================================================
- EnsureBackslash
- ---------------------------------------------------------------
-
-
- Zeile := 'Pfadname';
- Zeile1 := EnsureBackSlash (Zeile);
- Zeile := 'Pfadname\';
- Zeile2 := EnsureBackSlash (Zeile);
-
- { Ergebnis: Zeile1 = 'Pfadname\'
- Zeile2 = 'Pfadname\' }
-
- ===============================================================
- EnsureNoBackslash
- ---------------------------------------------------------------
-
- Zeile := 'PfadName\';
- Zeile := EnsureBackSlash (Zeile);
-
- { Ergebnis : Zeile = 'PfadName' }
-
-
- ===============================================================
- LastPos
- ---------------------------------------------------------------
-
- LastPos('33','33333');
- ^^ { Ergebnis: 4 }
-
- ===============================================================
- LowerString
- ---------------------------------------------------------------
-
- wird analog zur Funktion 'UpperString' benutzt
-
- ===============================================================
- MirrorString
- ---------------------------------------------------------------
-
- MirrorString('Hello_World_!'); { Ergebnis: '!_dlroW_olleH' }
-
- ===============================================================
- PartString
- ---------------------------------------------------------------
-
- LineArray [0] := 'Hello World'; { vom Typ FieldOfStrings }
- PartString (' ',LineArray);
-
- {Ergebnis:
- LineArry -> 'Hello World','Hello','World','',...
- PartCount -> 2
- }
-
- siehe auch PartStringByComma und PartString PartStringBySpaceTAB
-
- ===============================================================
- PartStringByComma
- ---------------------------------------------------------------
-
- LineArray [0] := 'Hello, World'; { vom Typ FieldOfStrings }
- PartStringByComma (LineArray);
-
- {Ergebnis:
- LineArry -> 'Hello, World','Hello',' World','',...
- PartCount -> 2
- }
- siehe auch PartStringBySpaceTAB
-
- ===============================================================
- PartStringBySpaceTAB
- ---------------------------------------------------------------
-
- LineArray [0] := 'Hello World'; { vom Typ FieldOfStrings }
- PartStringBySpaceTAB (LineArray);
-
- {Ergebnis:
- LineArry -> 'Hello World','Hello','World','',.....
- PartCount -> 2
- }
-
- Hier in Kurzform einige Testzeilen:
-
- LineArray [0] PartCount LineArray [1]....
- '' -> 0 ''
- 'a b c' -> 3 'a','b','c'
- 'a "b c"' -> 2 'a','b c'
- '"a b c' -> 1 'a b c'
-
- ===============================================================
- PosCount
- ---------------------------------------------------------------
-
- 1. PosCount('l','Hallo');
- ^^
- { Ergebnis: 2 }
-
- 2. PosCount('33','333');
- ^^ { Ergebnis: 1 }
- ^...
-
- ===============================================================
- PosX
- ---------------------------------------------------------------
-
- Writeln (PosX (2,'ab','abcabdabc');
- ^^ {Ergebnis: 4 }
- ===============================================================
- RedPosCount
- ---------------------------------------------------------------
-
- RedPosCount('33','333');
- ^^ { Ergebnis: 2 }
- ^^
- ===============================================================
- RemoveAll
- ---------------------------------------------------------------
-
- Writeln (RemoveAll ('acxb','Faxibdxao'));
- ^^ ^ ^^ { Ergebnis: 'Fido' }
-
- ===============================================================
- RemoveLeft
- ---------------------------------------------------------------
-
- Writeln (RemoveLeft ('abc','cbaFido'));
- ^^^ { Ergebnis: 'Fido' }
-
- ===============================================================
- RemoveLeftRight
- ---------------------------------------------------------------
-
- Writeln (RemoveLeftRight ('abc','cbaFidoabc'));
- ^^^ ^^^
- { Ergebnis: 'Fido' }
-
- ===============================================================
- RemoveRight
- ---------------------------------------------------------------
-
- Writeln (RemoveRight ('cba','Fidoabc'));
- ^^^
- { Ergebnis: 'Fido' }
-
- ===============================================================
- Resemble
- ---------------------------------------------------------------
-
- Writeln (Resemble('Fido','Fodi')); { Ergebenis: 2 }
- Writeln (Resemble('Fido','Fodo')); { Ergebenis: 1 }
-
- ===============================================================
- StringToESC
- ---------------------------------------------------------------
-
- Zeile := '^[P^^';
- Zeile2 := EscToString (Zeile));
- { Ergebnis: Zeile2 = #27'P^' }
-
- ===============================================================
- StripLeadingSpaceTAB
- ---------------------------------------------------------------
-
- Writeln (StripLeadingSpaceTAB (' Hello '));
- ^^^ { Ergebnis : 'Hello ' }
-
- ===============================================================
- StripSpaceTAB
- ---------------------------------------------------------------
-
- Writeln (StripSpaceTAB (' Hello '));
- ^^ ^ { Ergebnis: 'Hello' }
-
- ===============================================================
- UpperString
- ---------------------------------------------------------------
-
- Uebergabe von Variablen des Typs CHAR:
- -------------------------------------
- var
- str1 : string[1];
- ch : char;
- begin
- str1:= UpperString('a');
- ch:= str1[1];
- writeln(ch);
- end. { Ergebnis: 'A' }
-
-
- Uebergabe von Variablen des Typs STRING:
- ---------------------------------------
- writeln(UpperString('ab'); { Ergebnis: 'AB' }
-
- ===============================================================
- WildMatch
- ---------------------------------------------------------------
-
- Writeln (WildMatch ('?cd?','bcde')) { Ergebnis: TRUE }
- Writeln (WildMatch ('*cd?','abcde')) { Ergebnis: TRUE }
- Writeln (WildMatch ('*Fido','look a Fido')) { Ergebnis: TRUE }
-
- ---------------------------------------------------------------
-
- 5. History:
- -----------
- Neuerungen nach Release ...
- ---------------------------
- ... 1.02 - PosX - liefert die Position des Xten
- Vorkommens eines Substrings
- innerhalb eines Strings als
- Byte zurueck
- ... 1.03 - CharListPos - liefert die Position des
- ersten Vorkommens eines, in
- einer als String uebergebenen
- Liste enthaltenen Chars in
- einem String als Word zurueck
- CharListNoPos - liefert die Position des
- ersten Vorkommens eines, in
- einer als String uebergebenen
- Liste _nicht_ enthaltenen
- Chars in einem String als
- Word zurueck
- EnsureBackslash - stellt sicher, dass ein String
- mit einem '\' endet
- EnsureNoBackslash - stellt sicher, dass ein String
- _nicht_ mit einem '\' endet
- FieldOfStrings - Typendefinition fuer den
- internen Gebrauch
- PartString - teilt einen String, ausgehend
- von einer als String
- uebergebenen Liste von Trenn-
- zeichen, in Teilstrings auf
- PartStringByComma - teilt einen String, ausgehend
- von dem Trennzeichen ',', in
- Teilstrings auf
- PartStringBySpaceTAB - teilt einen String, ausgehend
- von den Trennzeichen ' ' und
- #9, in Teilstrings auf
- RemoveAll - entfernt alle in einer
- uebergebenen Liste enthaltenen
- Chars komplett aus einem
- String
- RemoveLeft - entfernt alle in einer
- uebergebenen Liste enthaltenen
- Chars links aus einem String
- RemoveLeftRight - entfernt alle in einer
- uebergebenen Liste enthaltenen
- Chars links _und_ rechts aus
- einem String
- RemoveRight - entfernt alle in einer
- uebergebenen Liste enthaltenen
- Chars rechts aus einem String
- Resemble - liefert einen Wert zurueck,
- der angibt, wie sehr sich
- zwei Strings aehneln
- StripLeadingSpaceTAB - entfernt alle fuehrenden Leer-
- zeichen und TABs aus einem
- String
- StripSpaceTAB - entfernt _alle_ Leerzeichen
- und TABs aus einem String
- WildMatch - ueberprueft, ob ein beliebige
- WildCards '?' und '*' ent-
- haltender String mit einem
- als zweiter Parameter ueberge-
- benem String uebereinstimmt
-
- ... 1.05 - PartString - behandelt alle Zeichen die von
- "" umschlossen sind als eine
- Teilzeichenkette.
- - Die Variable PartCount ist global
- ... 1.06 - Partstring - Probleme bei Zeilenlängen von
- 34 Zeichen behoben.
- ==========================================================================
-
- /////////////////////\\\\\\\\\\\\\\\\\\\\\\\
- Ende der Dokumentation zur FIDO Unit FSTR
- \\\\\\\\\\\\\\\\\\\\\///////////////////////
-